The fundamental concepts and mathematical theory of information transmission were developed and described by C. E. Shannon many years ago. Shannon perceived that it was possible to transmit digital information over a noisy channel with an arbitrarily small error probability by employing appropriate channel encoding and decoding.
The goal of approaching such error-free transmission can be achieved when the information transmission rate is less than the channel capacity, in bits per second. Since Shannon's work, a great deal of effort has been exerted by many researchers to find better and more efficient coding and decoding methods for error control. As a result, many different types of codes, primarily block codes and convolutional codes, have been developed and used in modern digital communication systems.
Block codes are implemented by combination logic circuits, examples of which include: Reed-Muller (RM) codes, cyclic codes, array codes, single-error-correcting (SEC) Hamming codes, and Reed-Solomon (RS) codes.
Convolutional codes are implemented by sequential logic circuit and are also called tree codes or trellis codes. In general, block and convolutional codes can be binary or non-binary, linear or non-linear, and systematic or nonsystematic. At the receiving end, the channel decoder uses any redundancy in the channel code sequence to correct errors, if there are any, in the received channel sequence. The decoder then produces an estimate of the source information sequence.
Modern digital communication systems have evolved to the extent that they now often require error-free recovery of transmitted data. Errors, caused by signal distortion, are introduced into wireless transmitted signals primarily due to multi-path and fading effects. Furthermore, cellular radio technology attempts to maximise use of the limited channel bandwidth by reusing the available frequencies in different cells. As a result, cellular radio systems also suffer from significant co-channel and adjacent channel interference in addition to the effects of multipath and fading.
The errors/distortion introduced into wireless transmitted signals result in received bits being wrongly decoded. Hence, the issue of data integrity, where error protection is required or desired, is therefore becoming increasingly important. To offer some protection against such distortion effect, channel coding is used.
A channel-coding scheme may typically include such techniques as cyclic redundancy checking, convolutional encoding and interleaving. Convolutional encoding introduces redundancy into the data to be transmitted by effectively spreading out the information contained in each bit. The use of convolutional encoding, together with Viterbi decoding, enables some of the bits received in error to be corrected. Hence, efficient and effective error-correcting codes are therefore highly desirable, particularly in a wireless communication system.
A convolutional code depends not only on the last information frame, but also on n preceding information frames. As a consequence, convolutional encoding is known to require a relatively large number of simple computations. A typical convolutional encoding scheme is defined in the GSM EDGE standard [“GSM 05.03 v8.3.0 (2000-02): “Digital Cellular Telecommunications System (Phase 2+); Channel Coding”].
The scheme is defined by:                (i) Its rate (r), which is 1/3 (meaning 3 results are output for each input),        (ii) Its constraint length (K), which is 7, and        (iii) Its polynomials, which are:y(3k)=D0⊕D2⊕D3⊕D5⊕D6  [1]y(3k+1)=D0⊕D1⊕D2⊕D3⊕D6  [2]y(3k+2)=D0⊕D1⊕D4⊕D6  [3]         where:                    K is the constraint length of the convolutional encoding scheme,            k—indexes ‘k’ input bits,            y(k) is output data,            Dn=x(k−n), x(k) is input data, and            ⊕ represents modulo-two addition, or the exclusive-or operation.                        
The GSM/Edge coding scheme can be represented as a shift register configuration 100, as shown in FIG. 1. A sequence of bits x(k) is input to a series of shift registers 115 to 145 for successively transferring the bit sequence. The output sequence can then be obtained by combining appropriately shifted bits output from the shift registers with the eleven binary adders 160 as shown, to provide the three output polynomials 170, 175, 180 as illustrated in equations [1] to [3].
The input-output function of this shift-register sequence is linear (as only linear elements are involved) and time-invariant: a delay of one shift at the input causes a delay of three shifts at the output. Thus, we get a convolutional (3,1)-code.
A key factor in the implementation of convolutional coding schemes is how to implement the theory in an efficient and effective processing manner. The performance capabilities and use of digital signal processors (DSPs) is continually increasing, as applications become more complex. Wireless communications is one such application.
DSPs now include the use of multi-core devices, co-processors and devices with single or multiple arithmetic login units (ALUs). The modern architectures of these devices allow independent calculations to be performed in parallel, thus prompting new approaches when implementing traditional DSP-related functions.
In addition, it is known that assembly language programming is a time-consuming process. For equipment manufacturers, assembly language programming potentially leads to increased time to market as well as difficult maintenance. These problems are compounded in modern multi-ALU devices with their complex architectures.
Fortunately, recent increases in processor performance and advancing compiler technology now make it feasible to implement most DSP functionality in a programming language such as ‘C’. Despite ever-improving compiler technology it is still necessary for the programmer to use knowledge of the application and the device to make maximum use of the parallel processing capability available.
A need therefore exists for an efficient convolutional encoder configuration wherein the abovementioned disadvantages may be alleviated.